package com.example.piedrapapeltijeralagartospock;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class Juego1 extends Activity {
	//Variables de los objetos visuales
	private TextView nombreJugador1, nombreJugador2, visualizaPuntuacion1, visualizaPuntuacion2, turno;
	private ImageView opcionJugador1, opcionJugador2;
	private ImageView piedra,  papel,  tijeras,  lagarto,  spock;
	
	//Variables logicas
	
	private Mano manoJugador1;
	private int modoDeJuego, puntuacion1, puntuacion2;
	private String jugador1, jugador2;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_juego);
		MyListener1 l= new MyListener1(this);
		
		nombreJugador1 = (TextView)findViewById(R.id.jugador1);
		nombreJugador2  = (TextView)findViewById(R.id.jugador2);
		visualizaPuntuacion1  = (TextView)findViewById(R.id.puntuacion1);
		visualizaPuntuacion2  = (TextView)findViewById(R.id.puntuacion2);
		turno  = (TextView)findViewById(R.id.turno);
		
		opcionJugador1 = (ImageView)findViewById(R.id.opcionJugador1);
		opcionJugador2 = (ImageView)findViewById(R.id.opcionJugador2);
		piedra = (ImageView)findViewById(R.id.piedra);
		papel = (ImageView)findViewById(R.id.papel);
		tijeras = (ImageView)findViewById(R.id.tijeras);
		lagarto = (ImageView)findViewById(R.id.lagarto);
		spock = (ImageView)findViewById(R.id.spock);
		
		opcionJugador1.setOnClickListener(l);
		opcionJugador2.setOnClickListener(l);
		piedra.setOnClickListener(l);
		papel.setOnClickListener(l);
		tijeras.setOnClickListener(l);
		lagarto.setOnClickListener(l);
		spock.setOnClickListener(l);
		
		//Colecta de datos recibidos y almacenamiento en variables
		Bundle bundle = getIntent().getExtras();
		modoDeJuego=bundle.getInt("ModoDeJuego");
		jugador1=bundle.getString("jugador1");
		jugador2=bundle.getString("jugador2");
		puntuacion1=bundle.getInt("puntuacion1");
		puntuacion2=bundle.getInt("puntuacion2");
		
		//Muestra visual de los parametros necesarios
		nombreJugador1.setText(jugador1 + ": ");
		nombreJugador2.setText(" :" + jugador2);
		turno.setText("Turno de " + jugador1);
		visualizaPuntuacion1.setText(String.valueOf(puntuacion1));
		visualizaPuntuacion2.setText(String.valueOf(puntuacion2));
	}
	
	//Metodo de ayuda para insertar una imagen en un imageview
	private void ponerElemento(ImageView elemento,int imagen){
		Resources res = getResources();
		Drawable drawable = res.getDrawable(imagen);
		elemento.setImageDrawable(drawable);
	}
			
	public void ponerMano(Mano mano, int drawable){
		manoJugador1=mano;
		ponerElemento(opcionJugador1,drawable);
		lanzar();
	}
	
	//Lanza la segunda pesta�a y se mandan los datos necesarios
	public void lanzar(){
		Intent intent = new Intent(Juego1.this, Juego2.class);
		intent.putExtra("ModoDeJuego", modoDeJuego);
		intent.putExtra("jugador1", jugador1);
		intent.putExtra("jugador2", jugador2);
		intent.putExtra("puntuacion1", puntuacion1);	
		intent.putExtra("puntuacion2", puntuacion2);	
		intent.putExtra("manoJugador1", Mano.getInt(manoJugador1));
		startActivity(intent);
	}
	
	//Metodo para generar el toast personalizado
	public void toast(int layoutToast){
		LayoutInflater inflater = getLayoutInflater();
		View layout = inflater.inflate(layoutToast,null);
		Toast toast = new Toast(getApplicationContext());
		toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
		toast.setDuration(Toast.LENGTH_LONG);
		toast.setView(layout);
		toast.show(); 
	}
	
	public void aviso(){
		Toast.makeText(this, "Para jugar elija una mano", Toast.LENGTH_SHORT).show();
	}
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.menu, menu);
		return true;
	}
	
	public boolean onOptionsItemSelected(MenuItem item) {
	    // Handle item selection
		 Intent intent = new Intent(this,MenuRecord.class);
	   try{
	    switch (item.getItemId()) {
	    case R.id.menuReglas:            
	        startActivity(new Intent(this,MenuReglas.class));
	        break;  
	    case R.id.menuReglasGraficas:            
	        startActivity(new Intent(this,MenuReglasGraficas.class));
	        break;
	    case R.id.menuReglasVideo:            
	    	startActivity(new Intent(this,MenuReglasVideo.class));
	        break;
	    case R.id.menuInformacion:            
	        startActivity(new Intent(this,MenuInformacion.class));
	        break;
	    case R.id.menu2ficherotxt:            
	        intent.putExtra("ModoCarga", 1);
	        startActivity(intent);
	        break;
	    case R.id.menu2ficherobin:    
	    	intent.putExtra("ModoCarga", 2);
	        startActivity(intent);
	        break;
	    case R.id.menu2ficheroxml:
	    	intent.putExtra("ModoCarga", 3);
	        startActivity(intent);
	        break;
	    case R.id.menu2basesql: 
	    	intent.putExtra("ModoCarga", 4);
	        startActivity(intent);
	        break;
	    default:
	        return super.onOptionsItemSelected(item);
	    }
	   }catch(Exception e){
		   Log.i("PiedraPapelMenu", e.getMessage(), e);
	   }
	   return true;
	}
}
